# -*- coding: utf-8 -*-
from app import db, application


# #######通用数据操作##############################################################################


# 这些操作都是静态的 直接从所有类中抽出 不用在定义了
def add(model):
    db.session.add(model)
    db.session.commit()


def add_not_commit(model):
    db.session.add(model)


def update():
    db.session.commit()


def commit():
    db.session.commit()


def delete_not_commit(model):
    db.session.delete(model)


def delete(model):
    db.session.delete(model)
    db.session.commit()


# User类 用于登录的模型  只是用于测试数据库连接
class Users(db.Model):
    # 设置参数
    __table_args__ = {
        'mysql_engine': 'InnoDB',
        'mysql_charset': 'utf8',
        'mysql_row_format': 'dynamic'
    }

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(80), unique=True)
    email = db.Column(db.String(255), unique=True)
    password = db.Column(db.String(100), nullable=False)
    key = db.Column(db.String(32), nullable=False, unique=True)
    token_key = db.Column(db.String(32), nullable=True, unique=True)  # 用户登录成功后 返回给浏览器
    last_login_time = db.Column(db.DateTime, nullable=True)
    role = db.Column(db.Integer)
    face_vector = db.Column(db.String(3600), nullable=True, unique=False)


db.create_all()
